gradle wrapper
プロジェクトごとに使う gradle のバージョンをプロジェクト内で宣言することで別途インストール手順書などをつかわなくても gradle build ができるようにする仕組み。
https://docs.gradle.org/current/userguide/gradle_wrapper.html
例えば git repository 上にあるプロジェクトは gradle install などをしなくても以下のようにして clone してすぐに実行できる。
code:bash
$ git clone ... && cd "$(basename "$_" .git)"
$ ./gradlew build
gradle は活発に開発されているためバージョンが変わると動かない場合が多くあるため、ホストマシンにインストールしてある gradle のバージョンに依存しないで実行可能なプロジェクトを構築できるためこちらを使うことが推奨されている。
Tips
gradlew 実行時に実際動く distribution jar は GRADLE_USER_HOME 以下に置かれる。
Gradle with CI ではうまくやらないと毎回この ditribution jar がダウンロードされてしまい、ビルド時間が長くなる、またはあまりにもダウンロードが動きすぎて CDN から弾かれる場合があるので注意が必要な場合がある。
gradle.properties の distribution url を差し替え、 distribution 側をカスタムすることであるグループの共通の処理などを埋め込むことができる
https://docs.gradle.org/current/userguide/organizing_gradle_projects.html#sec:custom_gradle_distribution